import pygame 
from pygame.sprite import Sprite, Group 
 
 
class Bullet(Sprite): 
    """管理飞船所发射子弹的类"""
 
    def __init__(self, screen, settings, start_position, direction): 
        """在实体的当前位置创建项目符号对象.""" 
        super().__init__() 
        self.screen = screen 
        self.settings = settings 
        self.color = self.settings.bullet_color 
 
        # 加载子弹图像并获取其正确值。. 
        self.image = pygame.image.load('images/bullet.png') 
        if direction == -1:  # 如果子弹的方向是向下，那么翻转图片 
            self.image = pygame.transform.flip(self.image, False, True) 
        self.rect = self.image.get_rect() 
 
        # 设置子弹的位置
        self.rect.midtop = start_position 
  
        # 将项目符号的位置存储为浮点数.
        self.y = float(self.rect.y) 
 
        # 存储子弹的方向.
        self.direction = direction 
 
    def update(self): 
        """
        移动子弹的方向由参数direction决定
        1 表示向上移动
        -1 表示向下移动
        """
 
        # 更新项目符号的小数位置
        self.y -= self.settings.bullet_speed * self.direction 
 
        # 更新矩形位置.
        self.rect.y = self.y 
 
    def draw_bullet(self): 
        """在屏幕上绘制子弹"""
        self.screen.blit(self.image, self.rect) 
 